The present invention relates to a system that presents windows or other workspaces on a workstation's display to provide a graphical user interface. More specifically, the present invention relates to a window system that can present plural windows at a time, each window providing a user interface for a respective application.
A wide variety of graphical user interfaces are available for personal computers and other computer workstations. Rao, R., "Towards Interoperability and Extensibility in Window Environments via Object Oriented Programming," Master's Thesis, Dept. of Electrical Eng. and Computer Science, Massachusetts Institute of Technology, June, 1987, examines existing window environments in chapters 1 and 2 and provides a preliminary design for an object-oriented window environment in chapter 3. Section 2.2 analyzes the functionality of a window system into window management, input handling, output handling, and window environment support; pages 32-33 discuss a hierarchical arrangement of windows, also called a window tree, and the use of nesting of windows. Section 2.3 discusses issues in window environment design; pages 51-52 discuss how Smalltalk, X, NeWS, and User Interface Management Systems (UIMS) separate user interface from underlying services; pages 55-56 discuss window placement, including the tradeoff between tiling and overlapping windows. Section 3.2.1 discusses the windowing model of the proposed design, describing at pages 66-67 a transformation mapping points in each child visual plane to points in its parent visual plane and a hierarchy of visual planes connected by visual worlds called a visual plane tree or a visual universe; the parent, the children, and the transformations are the elements of a visual world, and a set of constraints on how the elements are related, together with policies for maintaining these constraints, is called the visual world's contract. Section 3.2.2 discusses application of the visual world model, with pages 72-73 comparing tiling and overlapping. Section 3.3 discusses design issues, including the choice to design for Common Lisp Object System (CLOS). Section 3.4 discusses window management; section 3.4.1 describes visual planes; section 3.4.2 describes visual worlds, explicitly representing a relationship between a parent visual plane and a set of children visual planes; and section 3.4.3 describes contracts distributed between the parent and the child visual planes, considers whether contracts should be reified, and notes that explicity representations of contracts could be useful as points to attach functionality such as error recovery. Sections 3.7.1-3.7.4 describe contracts for bordering a viewer, for managing overlapping viewers, for managing tiling viewers, and for maintaining a scrollable viewer. Chapter 4 discusses obtaining flexibility through object-oriented programming.
Scheifler, R. W. and Gettys, J., "The X Window System," ACM Transactions on Graphics, Vol. 5, No. 2, April 1986, pp. 79-109, describe the X Window System's system substrate, which provides device-independent graphics. The system includes a hierarchy of windows, described in section 4. Within a window, its subwindows can be stacked in any order, with arbitrary overlaps. Although a window can extend outside the boundaries of its parent, those portions are never displayed.
NeWS Preliminary Technical Overview, Sun Microsystems, Mountain View, Calif., October 1986, describes NeWS, another window system. Pages 37-38 discuss how clients with different conventions can coexist in NeWS. Pages 42-43 describe canvases that exist in a hierarchy, with a child of a canvas having the capabilities of its parent.
"Window," ViewPoint Programmer's Manual, Xerox Corporation, September 1985, pp. 50-1 to 50-16, describes a tree of windows, in section 50.1.2, within which a window may have an ordered list or stack of its child windows. Each window has a pointer to its parent, a pointer to the next sibling of its parent, and a pointer to the window's topmost child. Section 50.2.4 describes window tree manipulation.
Bantz et al., EP-A 210,554, describe a method of windowing image data maintained in a hierarchical data tree structure. The complete image is defined at the root node and sub-images of the complete image are defined at lower order nodes, with the primitive images being defined at the leaf nodes. FIG. 4 shows a traverse function that searches the tree structure.
Kikuchi et al., EP-A 247,827, describe a computer system with a multiwindow presentation manager that displays overlapping windows on a screen. As shown and described in relation to FIG. 1, a section of memory connected to the display device stored window coordinate data specifying the positions and sizes of the independent windows on the screen; another section of memory connected to a cursor display unit stores present-cursor position data representing the latest coordinates of the cursor on the screen. If the present-cursor position data and the window coordinate data indicate that the cursor moves into one of the windows, that window is automatically moved in front of the other windows, as shown and described in relation to FIG. 3.
Noguchi et al., EP-A 249,399, describe multiwindow control techniques that provide an icon window display area with precedence over other display areas, as shown and described in relation to FIGS. 1 and 9. When a window is concealed by one or more other windows, it is reduced to a predetermined size and displayed in the icon window display area, as shown and described in relation to FIG. 8. The windows are controlled in accordance with a window control table and other tables and buffers as shown and described in relation to FIGS. 3 and 4a-4d. The window control table includes an item corresponding to each window and indicating its position and other information.
Agarwal et al., U.S. Pat. No. 4,713,754, describe a data structure for a document processing system, within which each page is subdivided into nonoverlapping areas, each comprised of one or more types of layers. FIGS. 6 and 7 show the document files structure.